Previous Book Contents Book Index Next

Inside Macintosh: 3D Graphics Programming With QuickDraw 3D /
Chapter 4 - Geometric Objects / Geometric Objects Reference
Data Structures


NURB Curves

A nonuniform rational B-spline (NURB) curve is a three-dimensional projection of a four-dimensional curve, with an optional set of attributes. A NURB curve is defined by the TQ3NURBCurveData data type. See "Creating and Editing NURB Curves," beginning on page 4-160 for a description of the routines you can use to create and edit NURB curves. Figure 4-18 shows a NURB curve.

Figure 4-18 A NURB curve

typedef struct TQ3NURBCurveData {
   unsigned long              order;
   unsigned long              numPoints;
   TQ3RationalPoint4D         *controlPoints;
   float                      *knots;
   TQ3AttributeSet            curveAttributeSet;
} TQ3NURBCurveData;
Field Description
order
The order of the NURB curve. For NURB curves defined by ratios of cubic B-spline polynomials, the order is 4. In general, the order of a NURB curve defined by polynomial equations of degree n is n+1. The value in this field must be greater than 1.
numPoints
The number of control points that define the NURB curve. The value in this field must be greater than or equal to the order of the NURB curve.
controlPoints
A pointer to an array of rational four-dimensional control points that define the NURB curve.
knots
A pointer to an array of knots that define the NURB curve. The number of knots in a NURB curve is the sum of the values in the order and numPoints fields. The values in this array must be nondecreasing (but successive values may be equal, up to a multiplicity equivalent to the order of the curve).
curveAttributeSet
A set of attributes for the NURB curve. The value in this field is NULL if no NURB curve attributes are defined.

Previous Book Contents Book Index Next

© Apple Computer, Inc.
11 JUL 1996